<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>通过set实现集合的运算</p>
    <script>
        let arr1 = [1,2,3,4,5,6,78,8];
        let arr2 = [1,2,4,5,777,98];
        // 并集-合并后的内容
        let setBing = new Set([...arr1, ...arr2]);
        console.log([...setBing]);

        // 交集-相同的部分
        let aa = [...arr1].filter(item => new Set(arr2).has(item))
        // 1.filter 返回的是符合条件的值组成的数组
        // 2.箭头函数的缩写 有返回值 只有一行 可以省略return和花括号
        // 3.set中的has方法 返回true false
        console.log(aa);

        // 差集-两个集合不同的部分
        let bb = [...arr1].filter(item => {
            return !new Set(arr2).has(item)
        })
        console.log(bb);
        
        let cc = [...arr2].filter(item => {
            return !new Set(arr1).has(item)
        })
        console.log(cc);
    </script>
</body>
</html>